Módulo 5 · Guia Interativo · 2026

LLMs — Grandes Modelos de Linguagem

GPT, Claude, Llama — como funcionam os modelos que geram texto. Pré-treinamento, fine-tuning, RLHF, context window e como escolher o modelo certo.

📚 Pré-treinamento 🎯 Fine-tuning 👥 RLHF 🌡️ Temperature 📏 Context Window

1 O que são LLMs?

Modelos gigantes treinados em trilhões de tokens — e por que eles impressionam tanto.

💡 Analogia
📚Um LLM é como um escritor que leu toda a internet — livros, artigos, fóruns, código. Ele sabe muita coisa, mas não "entende" como humanos. Apenas prevê qual palavra vem a seguir com base em padrões estatísticos.
LLM (Large Language Model) é um modelo de linguagem baseado em Transformers, treinado em enormes quantidades de texto. O treinamento ensina o modelo a prever o próximo token (palavra ou subpalavra) dado o contexto anterior. Após o treinamento, o modelo pode gerar texto coerente, responder perguntas, traduzir, resumir e muito mais.

Por que "Large"?

A escala é o que torna LLMs especiais. Modelos modernos têm:

🔢

Bilhões de parâmetros

GPT-3: 175B, Llama 3: 70B, Claude 3: ~200B (estimado). Mais parâmetros = mais capacidade de aprender padrões complexos.

📖

Trilhões de tokens

Treinados em terabytes de texto: Wikipedia, livros, web, código. GPT-3: ~300B tokens. Llama 2: 2T tokens.

💻

Compute massivo

Treinamento custa milhões de dólares em GPUs (A100, H100). GPT-4 provavelmente custou >$100M para treinar.

O que LLMs fazem bem (e mal)

✅ Pontos fortes

• Geram texto coerente e fluente

• Respondem perguntas sobre conhecimento geral

• Traduzem, resumem, reescrevem

• Escrevem código, e-mails, artigos

• Seguem instruções complexas

❌ Limitações

• Não sabem o que aconteceu depois do treinamento

• Alucinam (inventam informações)

• Não entendem de verdade (só padrões)

• Viés dos dados de treinamento

• Context window limitado

💡 No RAG: LLMs são o motor de geração. Eles recebem o contexto recuperado (chunks) e geram a resposta final. Por isso é crucial entender como funcionam — para escrever prompts melhores e escolher o modelo certo.

2 Pré-treinamento — aprendendo a linguagem

A fase onde o modelo "lê" a internet inteira e aprende padrões de linguagem.

💡 Analogia
🎓Pré-treinamento é como uma criança aprendendo a língua. Ela ouve milhões de frases e, sem ninguém explicar gramática, descobre sozinha os padrões: "depois de 'o', geralmente vem um substantivo", "verbos vêm depois do sujeito", etc.
O objetivo do pré-treinamento é simples: dado um texto, prever o próximo token. O modelo vê trilhões de exemplos e ajusta seus pesos para minimizar o erro de previsão. Após o treinamento, ele internalizou padrões de linguagem, conhecimento factual e até raciocínio básico.

Next Token Prediction

# Objetivo do pré-treinamento
# Dado: "O gato dormiu no"
# Prever: "sofá" (probabilidade 0.72)

# O modelo vê:
tokens = ["O", "gato", "dormiu", "no"]

# E prevê distribuição de probabilidades:
probs = {
    "sofá": 0.72,
    "chão": 0.15,
    "telhado": 0.08,
    "colo": 0.03,
    "outro": 0.02
}

# Loss function: cross-entropy
# Penaliza o modelo se o token correto tinha baixa probabilidade

🎮 Simulador: Next Token Prediction

Veja como o modelo prevê o próximo token

O
contrato
vence
em
?

Interpretação: o modelo calcula probabilidades para todos os tokens do vocabulário. Os mais prováveis são mostrados. Clique em uma predição para "escolhê-la" e ver a próxima predição.

Dados de treinamento

Modelo Tokens de treino Fontes Ano
GPT-3 ~300B Web, livros, Wikipedia 2020
Llama 2 2T Web, código, livros 2023
Claude 3 ~5T (estimado) Web, livros, código 2024
GPT-4 ~13T (estimado) Web, livros, código, multilíngue 2023

O que o modelo aprende?

📝

Gramática e sintaxe

Estrutura das frases, concordância, pontuação.

🌍

Conhecimento factual

Datas, nomes, eventos históricos, conceitos científicos.

💻

Programação

Sintaxe de linguagens, padrões de código, APIs.

🧠

Raciocínio básico

Lógica, matemática simples, analogias.

⚠️ Limitação crucial: o modelo só sabe o que estava nos dados de treinamento. Se o corte foi em 2023, ele não sabe nada de 2024. É por isso que precisamos de RAG — para injetar conhecimento atualizado!

3 Fine-tuning — adaptando ao seu domínio

Pós-treinamento supervisionado para tarefas específicas.

💡 Analogia
🎯Fine-tuning é como contratar um escritor genial e treiná-lo na sua empresa. Ele já sabe escrever, mas agora aprende o tom, jargão e processos específicos da sua organização.
Após o pré-treinamento, o modelo é um "escritor genérico". Fine-tuning supervisionado (SFT) ajusta o modelo com exemplos específicos de como ele deve responder. Ex: pares de (pergunta, resposta ideal) para um chatbot de suporte.

Tipos de fine-tuning

🎯

Supervised Fine-Tuning (SFT)

Treina com pares (input, output) ideais. Ex: perguntas de clientes + respostas perfeitas de especialistas.

LoRA / QLoRA

Fine-tuning eficiente: congela a maior parte do modelo e ajusta apenas pequenas matrizes. 10x mais barato.

🏥

Domain-specific

Adapta para domínios específicos: médico, jurídico, técnico. Usa dados do domínio para fine-tuning.

Exemplo: fine-tuning para suporte da Nimbus Cloud

# Dataset de fine-tuning
training_data = [
    {
        "input": "Qual o timeout do endpoint /v2/sync?",
        "output": "O timeout padrão do endpoint /v2/sync é 30 segundos. Para arquivos maiores que 500MB, recomendamos aumentar a variável NIMBUS_TIMEOUT para 120 segundos."
    },
    {
        "input": "Como aumentar o timeout?",
        "output": "Para aumentar o timeout, edite o arquivo de configuração config.yaml e adicione: NIMBUS_TIMEOUT: 120. Reinicie o serviço após a alteração."
    },
    # ... milhares de exemplos
]

# Fine-tuning com Hugging Face
from transformers import AutoModelForCausalLM, AutoTokenizer, Trainer

model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3-8b")
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3-8b")

# Configura treinamento
trainer = Trainer(
    model=model,
    train_dataset=training_data,
    args=TrainingArguments(
        output_dir="./nimbus-support-model",
        num_train_epochs=3,
        per_device_train_batch_size=4,
        learning_rate=2e-5
    )
)

# Treina
trainer.train()

# Salva modelo fine-tuned
model.save_pretrained("./nimbus-support-model")

Quando usar fine-tuning vs RAG?

🎯 Fine-tuning

Use quando:

  • Precisa de tom/estilo específico
  • Tarefa muito específica (ex: classificar tickets)
  • Dados de treinamento são estáveis
  • Latência crítica (fine-tuned é mais rápido)
🔍 RAG

Use quando:

  • Conhecimento muda frequentemente
  • Precisa de citações/fontes
  • Base de conhecimento muito grande
  • Não quer treinar modelo (caro)
💡 Combinação poderosa: RAG + Fine-tuning. Use fine-tuning para adaptar o modelo ao domínio (tom, jargão) e RAG para injetar conhecimento atualizado. É o melhor dos dois mundos.

4 RLHF — alinhamento com humanos

Como fazer o modelo seguir instruções e evitar respostas tóxicas.

💡 Analogia
👥RLHF é como treinar um cachorro com petiscos. O modelo gera respostas, humanos avaliam quais são boas, e o modelo aprende a gerar mais respostas do tipo "bom". É aprendizado por reforço com feedback humano.
Após o fine-tuning, o modelo ainda pode gerar respostas ruins, tóxicas ou que não seguem instruções. RLHF (Reinforcement Learning from Human Feedback) ajusta o modelo para alinhar com preferências humanas: ser útil, inofensivo e honesto.

As 3 etapas do RLHF

  1. Coleta de dados: humanos comparam pares de respostas (A vs B) e escolhem a melhor
  2. Treino do reward model: um modelo aprende a prever quais respostas humanos preferem
  3. Refinamento com PPO: o LLM é ajustado para maximizar a recompensa do reward model

Exemplo: comparando respostas

# Humano compara duas respostas
Pergunta: "Como aumentar o timeout?"

Resposta A: "Edite config.yaml e adicione NIMBUS_TIMEOUT: 120."
Resposta B: "Você pode tentar reiniciar o servidor ou verificar se há problemas de rede."

# Humano escolhe: A é melhor (mais específica e útil)
# Reward model aprende: respostas específicas > respostas vagas

# Após RLHF, o modelo gera mais respostas do tipo A

Por que RLHF é importante?

Segue instruções

Modelo aprende a fazer o que o usuário pede, não só completar texto.

🛡️

Mais seguro

Evita respostas tóxicas, prejudiciais ou antiéticas.

🎯

Mais útil

Respostas mais relevantes, completas e bem formatadas.

⚠️ Custo: RLHF é caro — precisa de milhares de avaliadores humanos. Por isso modelos open-source (Llama) geralmente não têm RLHF, apenas fine-tuning. Modelos comerciais (GPT-4, Claude) têm RLHF extensivo.

5 Temperature e Sampling — controlando a geração

Como ajustar a "criatividade" do modelo.

💡 Analogia
🎲Temperature é como ajustar o nível de ousadia de um escritor. Temperature baixa = escritor conservador, sempre escolhe a palavra mais óbvia. Temperature alta = escritor criativo, arrisca palavras menos comuns.

🎮 Simulador: Temperature

Ajuste a temperature e veja como a distribuição de probabilidade muda

0.7
O
contrato
vence
em
?

Interpretação: temperature baixa (0.1) = distribuição "afiada", quase determinística. Temperature alta (1.5) = distribuição "achatada", mais aleatória.

A fórmula

# Temperature scaling
probs_adjusted = softmax(logits / temperature)

# Onde:
# logits = scores brutos do modelo (antes de softmax)
# temperature = hiperparâmetro (0.1 a 2.0)

# Exemplo:
logits = [5.0, 3.0, 1.0]  # scores brutos

# Temperature = 0.1 (baixa)
probs_low = [0.88, 0.11, 0.01]  # quase determinístico

# Temperature = 1.0 (normal)
probs_normal = [0.76, 0.20, 0.04]

# Temperature = 2.0 (alta)
probs_high = [0.55, 0.30, 0.15]  # mais aleatório

Outros parâmetros de sampling

Parâmetro O que faz Valores típicos
Temperature Controla aleatoriedade da distribuição 0.1 (determinístico) a 1.5 (criativo)
Top-p (nucleus) Considera só tokens que somam p% da probabilidade 0.9 (considera top 90%)
Top-k Considera só os k tokens mais prováveis 50 (top 50 tokens)
Repetition penalty Penaliza tokens já gerados (evita repetição) 1.1 a 1.3

Quando usar cada temperature?

🎯

Temperature baixa (0.1-0.3)

Use para: código, extração de dados, respostas factuais, classificação.

Quando precisão > criatividade.

💬

Temperature média (0.5-0.8)

Use para: chatbots, Q&A, resumos, tradução.

Balanço entre coerência e variedade.

🎨

Temperature alta (1.0-1.5)

Use para: brainstorming, escrita criativa, geração de ideias.

Quando criatividade > precisão.

💡 No RAG: use temperature baixa (0.1-0.3) para respostas factuais baseadas em documentos. Você quer que o modelo seja preciso e cite fontes, não criativo.

6 Context Window — o limite de memória

Quantos tokens o modelo pode processar de uma vez — e por que isso importa.

💡 Analogia
📏Context window é como a mesa de trabalho de um escritor. Se a mesa é pequena, ele só consegue ter alguns livros abertos ao mesmo tempo. Se é grande, pode consultar mais fontes. O context window define quanto "contexto" o modelo pode ver de uma vez.

🎮 Simulador: Context Window

Veja como o contexto é distribuído no window

8192 tok
3000 tok
800 tok
System prompt
Contexto (chunks)
Pergunta
Output (reserva)
Chunks que cabem: 0
Espaço restante: 0 tok

Interpretação: o context window é dividido entre system prompt, contexto (chunks recuperados), pergunta do usuário e reserva para output. Se os chunks não cabem, você precisa recuperar menos ou usar chunks menores.

Context windows de modelos populares

Modelo Context Window Equivalente em páginas
GPT-3.5 4096 tokens ~3 páginas
GPT-4 8192 tokens ~6 páginas
GPT-4 Turbo 128.000 tokens ~100 páginas
Claude 3 200.000 tokens ~150 páginas
Llama 3 8192 tokens ~6 páginas
Mistral 32.000 tokens ~25 páginas

Implicações para RAG

📏

Tamanho dos chunks

Chunks muito grandes não cabem; chunks muito pequenos perdem contexto. Sweet spot: 300-800 tokens.

🔢

Top-K

Quantos chunks recuperar? Depende do context window. Com 8K tokens, cabem ~10 chunks de 500 tokens.

💰

Custo

LLMs cobram por token. Mais contexto = mais caro. Otimize o tamanho dos chunks e top-K.

⚠️ "Lost in the middle": estudos mostram que LLMs prestam mais atenção ao início e fim do contexto, ignorando o meio. Se você injeta 10 chunks, os do meio podem ser "esquecidos". Solução: reranking para colocar os mais relevantes no início.

7 Modelos populares em 2026

GPT, Claude, Llama, Mistral — qual escolher para seu caso de uso?

Comparador de modelos

Como escolher?

Caso de uso Modelo recomendado Por quê?
Chatbot corporativo Claude 3 Sonnet / GPT-4 Balanceamento qualidade/custo, bom em seguir instruções
RAG local (privacidade) Llama 3 8B / Mistral 7B Roda em GPU local, open-source, sem envio de dados
Geração de código GPT-4 / Claude 3 Opus Melhor em raciocínio complexo e código
Alto volume, baixo custo GPT-3.5 / Llama 3 8B Rápido e barato, bom para tarefas simples
Documentos longos Claude 3 (200K) / GPT-4 Turbo (128K) Context window enorme, processa livros inteiros

Modelos locais com Ollama

# Instala Ollama (https://ollama.com)
# Baixa e roda modelos localmente

# Lista modelos disponíveis
ollama list

# Baixa Llama 3 8B
ollama pull llama3.1:8b

# Roda interativamente
ollama run llama3.1:8b

# Usa via API
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.1:8b",
  "prompt": "Qual o timeout do endpoint /v2/sync?"
}'

# Modelos recomendados para RAG local:
# - llama3.1:8b (8B parâmetros, 8K context)
# - mistral:7b (7B parâmetros, 32K context)
# - qwen2.5:7b (7B parâmetros, bom em português)
💡 No RAG: para uso local com Paperless-ngx, use Ollama com Llama 3 8B ou Mistral 7B. Para máxima qualidade sem preocupação com privacidade, use Claude 3 Sonnet ou GPT-4 via API.

8 Conexão com RAG

Como LLMs se integram ao pipeline RAG.

💡 Conexão
🔗No RAG, o LLM é o motor de geração. Ele recebe o contexto recuperado (chunks) + pergunta do usuário e gera a resposta final. Entender como LLMs funcionam ajuda a escrever prompts melhores, escolher o modelo certo e otimizar custos.

O pipeline RAG com LLMs

# Pipeline completo

# 1. Usuário faz pergunta
question = "Qual o timeout do endpoint /v2/sync?"

# 2. Busca chunks relevantes (vetorial + BM25)
chunks = vector_db.search(question, top_k=5)

# 3. Monta prompt
prompt = f"""SYSTEM: Responda apenas com base no contexto.

CONTEXTO:
{format_context(chunks)}

PERGUNTA: {question}

RESPOSTA:"""

# 4. Chama LLM
import ollama

response = ollama.generate(
    model="llama3.1:8b",
    prompt=prompt,
    options={
        "temperature": 0.1,  # baixa para precisão
        "top_p": 0.9,
        "num_ctx": 8192  # context window
    }
)

# 5. Retorna resposta
answer = response["response"]
print(answer)
# "O timeout padrão do endpoint /v2/sync é 30 segundos..."

Escolhas críticas no RAG

Escolha Recomendação Por quê?
Modelo Llama 3 8B (local) ou Claude 3 Sonnet (API) Balanceamento qualidade/custo/privacidade
Temperature 0.1 a 0.3 Respostas factuais, não criativas
Context window 8192 tokens mínimo Caber system prompt + chunks + pergunta
Top-K 5-10 chunks Suficiente para contexto, sem estourar window
Tamanho dos chunks 300-500 tokens Equilíbrio entre precisão e contexto

Otimização de custos

💰

Semantic cache

Cache de respostas semanticamente similares. Evita chamar LLM para perguntas repetidas.

📏

Chunks menores

Menos tokens = menos custo. Mas não tão pequenos a ponto de perder contexto.
🎯

Reranking

Recupera top-20, rerankeia, passa top-5 ao LLM. Menos tokens, melhor qualidade.

💡 No Módulo 7 (RAG): você vai implementar tudo isso na prática: escolher modelo, ajustar temperature, otimizar context window. Tudo que aprendemos aqui é a base!

🎯 Quiz — teste seu conhecimento

Clique em uma alternativa para ver se acertou.

1. O que é um LLM?
Um banco de dados vetorial
Um modelo de linguagem baseado em Transformers, treinado em trilhões de tokens
Um algoritmo de clustering
2. Qual o objetivo do pré-treinamento?
Classificar documentos
Gerar embeddings
Aprender padrões de linguagem prevendo o próximo token
3. O que é fine-tuning supervisionado (SFT)?
Ajustar o modelo com pares (input, output) ideais para tarefas específicas
Treinar o modelo do zero
Avaliar a qualidade do modelo
4. O que é RLHF?
Um tipo de embedding
Técnica de alinhamento do modelo com preferências humanas usando aprendizado por reforço
Um algoritmo de busca vetorial
5. O que temperature baixa (0.1) faz na geração?
Torna o modelo mais criativo
Aumenta o context window
Torna o modelo mais determinístico, escolhendo quase sempre o token mais provável
6. Qual a limitação principal do context window?
Define quantos tokens o modelo pode processar de uma vez, limitando o tamanho do contexto
Determina a velocidade de geração
Controla a temperature
7. Para RAG com respostas factuais, qual temperature usar?
1.5 (alta criatividade)
0.1-0.3 (baixa, para precisão)
1.0 (balanceado)
8. Qual modelo é open-source e pode rodar localmente?
GPT-4
Claude 3
Llama 3
9. No RAG, qual o papel do LLM?
Receber contexto recuperado + pergunta e gerar a resposta final
Indexar documentos
Calcular embeddings
10. O que é "lost in the middle" em LLMs?
Quando o modelo esquece o system prompt
Tendência do modelo de prestar mais atenção ao início e fim do contexto, ignorando o meio
Quando o context window é muito pequeno

O que vem a seguir?

Agora que você entende LLMs, vamos aprender a "conversar" com eles de forma eficaz.

📝
Próximo módulo
Módulo 6 · Prompt Engineering
A arte de escrever instruções eficazes para LLMs. Zero-shot, few-shot, chain-of-thought, system prompts e técnicas avançadas.

Conceitos que vamos construir aqui

🎯

Zero-shot / Few-shot

Dar exemplos ao modelo para guiá-lo.

🧠

Chain-of-Thought

Pedir ao modelo para "pensar em voz alta".

📋

System Prompts

Instruções globais que definem o comportamento.

🔒

Prompt Injection

Segurança: evitar que usuários manipulem o modelo.

💡 Conexão com RAG: o prompt é onde injetamos o contexto recuperado. Um prompt mal escrito faz o LLM ignorar o contexto e alucinar. Prompt engineering é essencial para RAG de qualidade!